/******************************************************************************
 * @File name   :      IDealerUsrGrpApprovalService.java
 *
 * @Author      :      chen shixiang
 *
 * @Date        :      2011-6-7
 *
 * @Copyright Notice: 
 * Copyright (c) 2014 DMS, Inc. All  Rights Reserved.
 * This software is published under the terms of the DMS Software
 * License version 1.0, a copy of which has been included with this
 * distribution in the LICENSE.txt file.
 * 
 * 
 * ----------------------------------------------------------------------------
 * Date                   Who         Version        Comments
 * 2011-6-7 下午12:29:24        chen shixiang     1.0            Initial Version
 * 2011-10-31 下午05:24:01        HeHao           1.1             Add Method autoApproveUserGroupApplication
 *****************************************************************************/
package com.cap.bts.framework.dm.approval.service;

import java.util.List;

import com.cap.bts.framework.dm.approval.domain.UserGroupApplication;
import com.cap.bts.framework.dm.approval.dto.ApplicationResultDto;
import com.cap.bts.framework.dm.approval.dto.MultiApprovalSubmitDto;
import com.cap.bts.framework.dm.approval.dto.QueryApplicationDto;
import com.cap.bts.framework.dm.employeemgnt.dto.UnregisterUserApplicationDto;

import com.cap.bts.framework.common.exception.AppException;
import com.cap.bts.framework.common.service.IBaseService;
import com.cap.bts.framework.dm.approval.dto.ApprovalSubmitDto;



/**
 * 人员维护Service
 */
public interface IDealerUsrGrpApprovalService extends IBaseService {

    /***
     * query application info
     * 
     * @Date : 2011-6-7
     * @param queryDto
     *            QueryApplicationDto
     * @param isPaging
     *            isPagingapproveUserGroupApplication
     * @return List<ApplicationResultDto>
     * @throws AppException
     *             AppException
     */
    List<ApplicationResultDto> getUserGroupApplication(QueryApplicationDto queryDto, boolean isPaging)
        throws AppException;

    /**
     * get user group application detail
     * 
     * @Date : 2011-6-9
     * @param applicationId
     *            application id
     * @return the application result dto
     * @throws AppException
     *             the appException
     */
    ApplicationResultDto getUserGroupApplicationDetail(long applicationId) throws AppException;
    
    /**
     * save approval and get next step
     * @Date        :      2011-6-14
     * @param submitDto
     */
    void approveUserGroupApplication(ApprovalSubmitDto submitDto)throws AppException;
    
    
    /**
     * create or update user
     * @Date        :      2011-6-15
     * @param application
     */
    void createUserAccountToGDMS(UserGroupApplication application,Long createBy,int appResult)throws AppException;

    /**
     * transfer data
     * @Date        :      2011-6-27
     * @param oldUserCode
     * @param newUserCode
     * @param isAgreeUserTransfer
     * @return
     */
    boolean transferUserDate(String oldUserCode,String newUserCode,int isAgreeUserTransfer)throws AppException;
    

    

    /**
     * search UnregisterUserApplication list by QueryApplicationDto
     * @Date        :      2011-6-27
     * @param queryApplicationDto
     * @return
     */
    public List<ApplicationResultDto> getUnregisterUserApplication(QueryApplicationDto queryApplicationDto,boolean isPaging,String dealerCodes)throws AppException;
  
    
}
